import java.util.*;

public class HJ24 {//合唱队,最长递增序列问题-思路，先分别求出从左到右和从右到左的最长递增序列长度再汇总得出综合最长
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int n = Integer.parseInt(in.nextLine());
//        String str= in.nextLine();
//        int count = 0;
//        String[] heights= str.split("\\s+");
//        Map<Integer,Integer> sort = new HashMap<>();//记录每个人的从左到右和从右到左的最长递增序列长度
//        for (int i = 0 ; i < n ;i++){//求最长递增序列长度
//            int length = 0;//最长递增序列长度
//            int max = 0;
//            int now = Integer.parseInt(heights[i]);
//            for (int j = 0 ; j < i ;j++){//求从左到右最长递增序列长度
//                if(Integer.parseInt(heights[j]) < now && Integer.parseInt(heights[j])>max){
//                    length++;
//                    max = Integer.parseInt(heights[j]);
//                }
//            }
//            sort.put(now,length);//记录当前人员左侧的最长递增序列
//            length = 0;//重置
//            max =0;//重置
//            for (int j = n-1 ; j > i ;j--){//求从左到右最长递增序列长度
//                if(Integer.parseInt(heights[j]) < now && Integer.parseInt(heights[j])>max){
//                    length++;
//                    max = Integer.parseInt(heights[j]);
//                }
//            }
//            sort.put(now,sort.getOrDefault(now, 0) + length);//汇总当前人员的最长递增序列
//            count = Math.max(count, sort.get(now));//得到最长递增序列长度
//            System.out.println(sort.entrySet());
//        }
////        System.out.println(n-count);
//    }
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()){
            int n = sc.nextInt();
            int[] arr = new int[n];
            int[] arrL = new int[n]; // 左侧小于arr[i]的个数
            int[] arrR = new int[n]; // 右侧大于arr[i]的个数
            for(int i = 0; i < n; ++i){
                arr[i] = sc.nextInt();
            }

            for(int i = 0; i < n; ++i){//记录从左到右每个字符的最长递增序列长度
                arrL[i] = 0; // 所以默认初始是0,,对于第一个数来说， 在arr[0]的左侧小于arr[0]的个数是0。
                for(int j = 0; j < i; ++j){
                    if(arr[i] > arr[j]){
                        arrL[i] = Math.max(arrL[j] + 1, arrL[i]);
                    }
                }
            }

            for(int i = n - 1; i >= 0; --i){//记录从右到左每个字符的最长递增序列长度
                arrR[i] = 0; // 所以默认初始是0,,对于最后一个数来说， 在arr[n - 1]的右侧小于arr[0]的个数是0。
                for(int j = n - 1; j > i; --j){
                    if(arr[i] > arr[j]){
                        arrR[i] = Math.max(arrR[j] + 1, arrR[i]);
                    }
                }
            }

            int maxValue = 0;
            for(int i = 0; i < n; ++i){//汇总得出每个字符的最长递增序列长度
                maxValue = Math.max(maxValue, arrR[i] + arrL[i] + 1);
            }

            System.out.println(n - maxValue);
        }
    }
}